let toString = Object.prototype.toString;
/**
 * 判断是否为对象类型
 * @param {any} obj 任意数据
 */
export let isObject = obj => toString.call(obj) === "[object Object]";
/**
 * 判断是否为字符串类型
 * @param {any} obj 任意数据
 */
export let isString = obj => toString.call(obj) === "[object String]";

/**
 * 判断是否为数组类型
 * @param {any} obj 任意数据
 */
export let isArray = obj => toString.call(obj) === "[object Array]";

/**
 * 判断是否为函数类型
 * @param {any} obj 任意数据
 */
export let isFunction = obj => toString.call(obj) === "[object Function]";

/**
 * 判断是否为数字类型
 * @param {any} obj 任意数据
 */
export let isNumber = obj => toString.call(obj) === "[object Number]";

/**
 * 判断是否为布尔类型
 * @param {any} obj 任意数据
 */
export let isBoolean = obj => toString.call(obj) === "[object Boolean]";

/**
 * 判断是否为undefined
 * @param {any} obj 任意数据
 */
export let isUndefined = obj => toString.call(obj) === "[object Undefined]";

/**
 * 判断是否为undefined
 * @param {any} obj 任意数据
 */
export let isNull = obj => toString.call(obj) === "[object Null]";

/**
 * 判断是否为正则
 * @param {any} obj 任意数据
 */
export let isRegExp = obj => toString.call(obj) === "[object RegExp]";

export default {
  isString,
  isNumber,
  isFunction,
  isObject,
  isArray,
  isBoolean,
  isUndefined,
  isNull,
  isRegExp
};
